package com.miao.service.Impl;

import com.miao.mapper.ICatMapper;
import com.miao.mapper.IDogMapper;
import com.miao.mapper.IPeopleMapper;
import com.miao.mapper.IUserMapper;
import com.miao.service.IPeopleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

import javax.annotation.Resource;

public class PeopleServiceImpl implements IPeopleService {

    //先按照Type自动注入，有且只有一个就成功
    @Autowired
    private IUserMapper userMapper;

    //先按照Type自动注入，发现有多个时，再按照 默认名字去注入，默认名字也没有匹配上就失败；    如果名字也没有匹配上则失败！
    //                              可以用 @Qualifier("CatMapperImpl2") 指定某一个名字，如果名字也没有匹配上则失败！
    @Autowired
    @Qualifier("CatMapperImpl2")
    private ICatMapper catMapper;


    //@Resource 先按照Name 自动注入，，按名字找不到时，再按照类型匹配.
    @Resource
    private IPeopleMapper peopleMapper;


    //@Resource 先按照Name 自动注入，，按名字找不到时，再按照类型匹配.---如果类型又有多个，则报错
    //@Resource 一旦指定了name  就只能按照name找。 找不到就报错
    //          一旦指定了 Type 就只能按照指定Type找，找不到就报错
    @Resource(name="DogMapperImpl1")
    //@Resource(type= DogMapperImpl1.class)
    //@Resource
    private IDogMapper dogMapper;


    @Override
    public void printPeople() {
        System.out.println("Service层调用peopleMapper");
        userMapper.printUser();
        catMapper.printCat();
        peopleMapper.printPeople();
        dogMapper.printDog();
    }


}
